Programmierung des BT-Moduls HC-08
Das folgende Scenario wurde mit dem Bluetooth-Modulen der ELEGOO Smart Robot Cars V3.0 erfolgreich getestet. Das Modul HC-08 nutzen die Funktechnik Bluetooth 4.0 BLE (Bluetooth Low Energy). Als brauchbare Quellen haben sich folgende erwiesen:
- HC-08 BLUETOOTH UART COMMUNICATION MODULE V2.4 USER MANUAL
- SH-HC-08 Data Sheet
- Arduino + Bluetooth BLE (SH-HC-08)
- HC-08 BLUETOOTH UART COMMUNICATION MODULE V2.0 USER MANUAL
bisher getestete BT-Terminal-Programme
- iOS Blue Term: BLEdoes not Support
- iOS ELEGOO BLE Tool: funktioniert
AT-Kommados - Unbedingt keine Zeilenendezeichen übertragen !!!
Kommando | Ausgabe | Bedeutung | ||
---|---|---|---|---|
AT | OK | Antwort des Moduls | ||
AT+VERSION | HC-08 V2.2,2015-07-30 | Modul aus ELEGOO-SmartRobotCar 3.0 | ||
AT+RX | Name:HC08-FABIAN Role:Slave Baud:9600,NONE Addr:9C,1D,58,14,F4,76 PIN :000000 |
Modulname, max. 12 Zeichen derzeit nicht änderbar |
||
AT+NAME=HC08-Test | OKsetNAME | Ändert den Modulnamen | ||
AT+ROLE=M | OK | Modul wird MASTER | ||
AT+ROLE=S | OK | Modul wird SLAVE | ||
AT+RESET | OK | Modul wird zurückgesetzt | ||
AT+DEFAULT | OK | Modul in den Ausgangszustand |
Testaufbau
Arduino | HC-05 | Farbe | Kommentar |
---|---|---|---|
5V | VCC | rot | Verbindung ist NICHT? nötig |
GND | GND | blau | Masseverbindung |
rxdPin | TXD | grün | Eingang rxdPin verbunden mit Ausgang TXD |
txdPin | RXD | gelb | Ausgang txdPin verbunden mit Eingang RXD |
Testprogramm mit Kommunikation über Seriellen Monitor
#include <SoftwareSerial.h> const byte rxdPin = 7, // Eingang, wird (über grün) mit Ausgang TXD des BT-Moduls verbunden txdPin = 8; // Ausgang, wird (über gelb) mit Eingang RXD des BT-Moduls verbunden SoftwareSerial BTSerial(rxdPin, txdPin); void setup() { Serial.begin(9600); while (!Serial) { } // 'kein Zeilenende' im Seriellen Monitor BTSerial.begin(9600); while (!BTSerial) { } Serial.println("Enter AT commands:"); Serial.println("AT+VERSION"); Serial.println("AT+RX"); Serial.println("AT+NAME=NEUERNAME"); //max. 12 Zeichen Serial.println("AT+ADDR=?"); } void loop() { while (BTSerial.available()) Serial.write(BTSerial.read()); while (Serial.available()) { byte z=Serial.read(); if (z==' ') Serial.println(); BTSerial.write(z); } }
Verbindung zwischen Seriellen Monitor und einem BT-Gerät
Verbinde dein BT-Gerät mit dem BT-Modul. Jetzt werden Eingaben über das Eingabefenster des Seriellen Monitors über den UNO auf dem die Ausgabe des BT Terminals geschreiben. Umgekehrt funktioniert das auch. Probleme könenn mit den Zeilenwechseln auftreten.
markable.in - asigismund